Sift 決済フロー

処理概要

Siftを利用した決済の流れを以下に記載します。
以下は一例ですので、加盟店様の運用に合わせ、各イベントAPIを組み合わせてご利用ください。

Siftを利用した決済の流れ
sequenceDiagram お客様->>加盟店様: 1.カート画面に進む
(購入処理開始) 加盟店様-->>お客様:   participant 当サービス お客様->>Sift: 2.ユーザデータ送信 お客様->>加盟店様: 3.決済手続きに進む 加盟店様->>当サービス: 4.$create_orderイベント実行 当サービス->>Sift: 5.スコア判定 Sift-->>当サービス:   当サービス-->>加盟店様:   opt スコアから実施要否を判断 加盟店様->>当サービス: 6.決済実行 当サービス-->>加盟店様:   end 加盟店様->>当サービス: 7.$transactionイベント実行 当サービス->>Sift: 8.スコア判定 Sift-->>当サービス:   当サービス-->>加盟店様:   opt スコアから実施要否を判断 加盟店様->>当サービス: 9.実売上/決済キャンセル 当サービス-->>加盟店様:   end 加盟店様->>当サービス: 10.$decisionイベント実行 当サービス->>Sift: 11.情報連携 Sift-->>当サービス:   当サービス-->>加盟店様:   加盟店様-->>お客様: 12.画面表示

フローの説明

  1. 加盟店様がサイト及びスマートフォンアプリにて購入処理を開始します。
  2. お客様の利用デバイスからSiftにデバイス情報が送信されます。
    利用デバイスがWebブラウザの場合は、加盟店様サイトにSift提供のJavaScriptを組み込む必要があります。
    利用デバイスがスマートフォンアプリの場合は、加盟店様アプリにSift提供のSDKを組み込む必要があります。
  3. お客様がお支払い手段を選択します。
  4. 加盟店様は$create_orderイベントを実行します。
  5. Siftにて決済前スコア判定を行います。
  6. 加盟店様は当サービスより返却されたスコアからサービス提供可否を判定し、サービス提供可と判断した場合、決済を行います。
  7. 加盟店様は$transactionイベントを実行します。
  8. Siftにて決済後スコア判定を行います。
  9. 加盟店様は必要に応じて当サービスより返却されたスコアから判断し、売上や決済のキャンセルを行います。
  10. 加盟店様は$decisionイベントを実行します。決済直後でなくとも問題ありません。
  11. 当サービスがSiftに対して情報の連携を行います。
  12. 加盟店様はお客様に購入完了画面を表示します。
チャージバック情報連携の流れ
sequenceDiagram カード会社->>加盟店様: 1.チャージバック情報連携 加盟店様->>当サービス: 2.chargebackイベント実行 当サービス->>Sift: 3.チャージバック情報連携 Sift-->>当サービス:   当サービス-->>加盟店様:   加盟店様->>当サービス: 4.decisionイベント実行 当サービス->>Sift: 5.情報連携 Sift-->>当サービス:   当サービス-->>加盟店様: .

フローの説明

  1. 加盟店様がカード会社からチャージバック情報を受け取ります。
  2. 加盟店様は$chargebackイベントを実行します。
  3. 当サービスがSiftに対してチャージバック情報を連携します。
  4. 加盟店様は$decisionイベントを実行します。この際、Sourceには「CHARGEBACK」をご指定ください。
  5. 当サービスがSiftに対して情報を連携します。

※クレジットカード決済包括加盟店様の場合、弊社がカード会社から受領したチャージバックデータを基に$chargeback、$decisionをSiftへ自動連携しますので、加盟店様での実施は不要です。(注意事項 参照)



Siftにユーザデータを送信する際に必要となる実装について

お客様の利用デバイスからSiftにユーザデータを送信します。
利用デバイスがWebブラウザの場合は、加盟店様サイトにSift提供のJavaScriptを組み込む必要があります。
利用デバイスがスマートフォンアプリの場合は、加盟店様アプリにSift提供のSDKを組み込む必要があります。

JavaScriptの実装について

<script type="text/javascript">
  var _user_id = 'al_capone'; // Set to the user's ID, username, or email address, or '' if not yet known.
  var _session_id = 'unique_session_id'; // Set to a unique session ID for the visitor's current browsing session.
 
  var _sift = window._sift = window._sift || [];
  _sift.push(['_setAccount', 'INSERT_BEACON_KEY_HERE']);
  _sift.push(['_setUserId', _user_id]);
  _sift.push(['_setSessionId', _session_id]);
  _sift.push(['_trackPageview']);
 
 (function() {
   function ls() {
     var e = document.createElement('script');
     e.src = 'https://cdn.sift.com/s.js';
     document.body.appendChild(e);
   }
   if (window.attachEvent) {
     window.attachEvent('onload', ls);
   } else {
     window.addEventListener('load', ls, false);
   }
 })();
</script>
          
項目名 設定値
_setAccount 加盟店様のBeacon Keyを指定します。
Beacon Keyは、Siftのコンソール画面からご確認ください。
_setUserId お客様のアカウントを特定する値(ID,ユーザ名,メールアドレス)を設定します。
デバイス情報を送信する時点でお客様がログインされていない場合、空文字を設定します。
設定できる文字は、半角英数字と以下の記号です。
., -, _, +, @, :, ^, %, !, $
_setSessionId お客様のセッションIDを指定します。
_user_idを空文字に設定している場合、create_orderイベント実行と紐づける為に必須です。

SDKの実装について

詳細はSiftのAPIリファレンスをご参照ください。

項目名 設定値
YOUR_ACCOUNT_ID 加盟店様のAccount IDを指定します。
Account IDは、Siftのコンソール画面からご確認ください。
YOUR_JAVASCRIPT_SNIPPET_KEY
YOUR_BEACON_KEY
加盟店様のBeacon Keyを指定します。
Beacon Keyは、Siftのコンソール画面からご確認ください。